﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Domain;
using Simply.Domain;

namespace Simply.BusinessTier.Facade.Interface
{
    public interface IProductService
    {
        List<ProductDO> GetAllProducts(string productType);
        IEnumerable<DataTemplateDO> GetAllTemplates(string productType);

        List<ProductDO> GetFilteredProducts(ProductFilter filter);
        int GetFilteredProductsCount(ProductFilter filter);
        ProductDO GetProductById(long id);
        
        
        List<DataTemplateDO> GetTemplatesByProductId(long productId);
        DataTemplateDO GetTemplateById(int id);
        int CreateTemplate(DataTemplateDO template);

        PrintMediaDO GetDefaultPrintMediaByProductId(long productId);
        PrintMethodDO GetDefaultPrintMethodByMediaCode(string mediaCode);
        List<PrintMediaDO> GetMediaListByProductId(long productId);
        
        
        
        long? CreatePackage(PackageDO packageDo);
        void UpdatePackageFilePath(long packageId, string path);
        
    }
}
